Computers today are being used to accomplish increasingly complex jobs, e.g. network, systems and service management, air traffic control, and manufacturing control. In order to accomplish these types of complex jobs, it is very common for users to need access to different types of information that may be located at different logical locations within the application's information space. It is also common for the users doing these complex jobs to need to quickly switch back and forth between the different information sets. When moving between information sets, the user does not want to lose access to context that accompanies the information (i.e., parameter settings, cursor settings, functionality available from menus, toolbars). The different sets of information or locations can be presented in separate windows or the new information or locations can overlay the existing information in the same window.
If the different sets of information or locations are presented in separate windows, there is typically not sufficient space to view all windows simultaneously. To deal with this problem, users can either layer the windows across their display or they can reduce some of the open windows to icons. When the user switches back and forth between the windows that contain the needed information, he or she is frequently required to perform a number of window manipulation operations in order to make available the window with the desired information and functionality (e.g., reducing other windows to icons, moving windows aside to be able to top others). In addition to requiring user effort for window manipulation, users will have difficulty in maintaining access to the working status of operations going on in the various windows. When windows are reduced to icons, typically the only information provided on the icon is the name of the application. When windows are layered, the status information has a good chance of being hidden.
Alternatively, if the different sets of information or locations are presented in the same window, users will be required to do a great deal of application navigation to go back and forth between them. For example, the user may be required to open menus and select menu items to go to each set of information or users many need to expand tree list items and scroll across different portions of the list to access new information. Regardless of which approach is taken, separate windows or information within the same window, a number of user actions and significant time may be required for the user to move back and forth between information sets or locations. This effort or time may be unacceptable if the user needs to accomplish a time critical job. Computer users doing complex jobs therefore need a mechanism for quickly moving back and forth between sets of information and application locations.
In addition to the above needs, users doing complex jobs need support to be able to move between tasks without loosing data. Users doing complex jobs are frequently interrupted. After beginning a routine task, they may be called upon to handle an urgent condition that can have negative consequences if not handled immediately. The effort that the user has put into the routine task up to the point of the interruption may be compromised when the user tries to get the interface for this initial task out of the way in order to handle the more urgent need. A mechanism is needed that will allow the user to suspend the initial task, hide the GUI for that task and return to it once the more urgent task is complete. Furthermore, if users are performing tasks that require a large amount of time for system processing, they need to allow the system to continue to work on a task while they proceed to other work.